Skip to main content

オブジェクト:プロパティ

シンボル: _cds_icon_interface_property.png

キーワード: PROPERTY

プロパティは、IEC 61131-3標準の拡張であり、オブジェクト指向プログラミング用のツールです。

プロパティは、データへの外部アクセスを可能にし、同時にフィルターとして機能するため、データのカプセル化に使用されます。この目的のために、プロパティはアクセサメソッドを提供します GetSet これにより、プロパティの下にあるインスタンスのデータへの読み取りおよび書き込みアクセスが可能になります。

プログラム、関数ブロック、またはグローバル変数リストの下にアクセサメソッドを使用してプロパティを追加できます。クリック プロジェクト→オブジェクトの追加→プロパティ 開くには プロパティを追加 ダイアログ。

ヒント

あなたは追加することができます インターフェイスプロパティ インターフェイスの下。

POUの下に挿入されたプロパティをコピーしてインターフェイスの下に追加するか、プロパティをそこに移動すると、含まれている実装が自動的に削除されます。

ダイアログ:プロパティの追加

関数:ダイアログを閉じたときに、選択したPOUの下に新しいプロパティを作成します。

電話プロジェクト→オブジェクトの追加→プロパティ;コンテキストメニュー

要件: プログラム (PRG)、機能ブロック(FUNCTION_BLOCK)、またはグローバル変数リスト(GVL)が選択されている POU ビューまたは デバイス 見る。

名前

プロパティの名前(識別子)

例: prop_iA

リターンタイプ

戻り値のデフォルトタイプまたは構造化タイプ

例: INT

実装言語

例: 構造化テキスト(ST)

アクセス指定子

データへのアクセスを制御します

公衆 または不特定

アクセスは制限されていません。

プライベート

アクセスは、プログラム、機能ブロック、またはGVLに制限されています。

オブジェクトはとしてマークされます (private) POUまたはデバイスビューで。宣言にはキーワードが含まれています PRIVATE

保護

アクセスは、プログラム、機能ブロック、またはその派生物を含むGVLに制限されます。

オブジェクトはとしてマークされます (protected) POUまたはデバイスビューで。宣言にはキーワードが含まれています PROTECTED

内部

アクセスは名前空間(ライブラリ)に制限されています。

オブジェクトはとしてマークされます (internal) POUまたはデバイスビューで。宣言にはキーワードが含まれています INTERNAL

概要

standard icon:プロパティに実装がなく、実装が派生FBによって提供されることを識別します

追加

選択したオブジェクトの下に、アクセサメソッドの下に新しいプロパティを追加します GetSet

注:プロパティを選択するときに、クリックして以前に削除したアクセサーを明示的に追加することもできます オブジェクトの追加

編集者:プロパティ

エディターでデータアクセスをプログラムできます。コードには、追加のローカル変数を含めることができます。ただし、追加の入力変数または(関数やメソッドではなく)出力変数を含めることはできません。

522.
_cds_img_property.png

機能ブロックFB_A

FUNCTION_BLOCK FB_A
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
    iA : INT;
END_VAR

iA := iA + 1;

財産 prop_iA

PROPERTY PUBLIC prop_iA : INT

アクセサメソッドFB_A.prop_iA.Get

prop_iA := iA;

アクセサメソッドFB_A.prop_iA.Set

iA := prop_iA;
PROGRAM PLC_PRG
VAR
        fbA : FB_A;
        iVar: INT;
END_VAR

fbA();
IF fbA.prop_iA > 500 THEN
        fbA.prop_iA := 0;
END_IF
iVar := fbA.prop_iA;


アクセサの取得と設定

の呼び出し Set アクセサはプロパティに書き込まれます。その後、入力パラメータと同じように使用されます。 Getアクセサーが呼び出されると、プロパティが読み取られます。出力パラメータと同じように使用されます。いずれの場合も、アクセス修飾子(修飾子)によってアクセスが制限されます。その結果、オブジェクトはそれに応じて識別されます。

プロパティが読み取り専用または書き込み専用としてアクセスされる場合、不要なアクセサーを削除できます。

プロパティを選択してクリックすると、アクセサを明示的に追加できます オブジェクトの追加。ダイアログが開きます。 Getアクセサーを追加 また セットアクセサーを追加。そこで、実装言語とアクセスを設定できます。

60. ダイアログ:Get(Set)アクセサーの追加

実装言語

例: 構造化テキスト(ST)

アクセス指定子

宣言部分の修飾子

PUBLIC または不特定

アクセスは制限されていません。

PRIVATE

アクセスは、プログラム、機能ブロック、またはGVLに制限されています。

オブジェクトはとしてマークされます (private) POUまたはデバイスビューで。宣言にはキーワードが含まれています。

PROTECTED

プロパティへのアクセスは、プログラム、機能ブロック、またはGVLとその派生物に制限されています。宣言にはキーワードが含まれています。

オブジェクトはとしてマークされます (protected) POUまたはデバイスビューで。

INTERNAL

メソッドへのアクセスは、名前空間(ライブラリ)に制限されています。

オブジェクトはとしてマークされます (internal) POUまたはデバイスビューで。宣言にはキーワードが含まれています。

追加

アクセサメソッドを追加します Get また Set 選択したプロパティの下。



オンラインモードでのプロパティの監視

以下 プラグマ オンラインモードでプロパティを監視するために提供されています。それらをプロパティ定義の一番上の位置に挿入します。

  • {attribute 'monitoring' := 'variable'}

    プロパティにアクセスするたびに、 CODESYS 実際の値を変数に保存し、この変数の値を表示します。コード内でプロパティへのアクセスが行われなくなると、この値は古くなる可能性があります。

  • {attribute 'monitoring' := 'call'}

    毎回 値が表示され、 CODESYS のコードを呼び出します Get アクセサー。このコードに副作用が含まれている場合、モニタリングは副作用を実行します。

. 以下の機能を使用して、プロパティを監視できます。
  • インラインモニタリング

    要件: インラインモニタリングを有効にする オプションが選択されている テキストエディタ のカテゴリ オプション ダイアログ。

  • ウォッチリスト

継承POUを生成する際の入力サポート

オブジェクト指向プログラミングを行い、継承を使用する場合(EXTENDS キーワード)POUの場合、次のようにサポートを受けることができます。

ベースPOUから派生したPOUの下にアクション、プロパティ、メソッド、またはトランジションを挿入すると、 追加 … ダイアログが開きます。次に、名前の入力フィールドがリストボックスに拡張されます。リストボックスには、ベースPOUで使用可能なアクション、プロパティ、メソッド、またはトランジションからの有効な選択が含まれています。これで、たとえば、ベースPOUのメソッドを簡単に受け入れて、それをPOUの派生関数に適合させることができます。

アクセス修飾子を使用したメソッドとプロパティ PRIVATE それらも継承されないため、ここにはリストされていません。アクセス修飾子を使用したメソッドとプロパティ PUBLIC 派生したPOUに受け入れると、自動的に空白のアクセス修飾子フィールドを取得します。これは、機能的には同じことを意味します。

詳細については、以下を参照してください。 財産方法遷移アクション

523.
_cds_img_input_wizzard_for_blocks.png